// pages/ai-chat/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    messages: [],
    inputValue: '',
    loading: false,
    scrollTop: 0,
    selectedFontSize: 'normal'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 添加欢迎消息
    this.addMessage({
      type: 'ai',
      content: '您好！我是您的AI健康助手，有什么可以帮您的吗？'
    })

    // 同步全局字体大小状态
    const app = getApp()
    this.setData({
      selectedFontSize: app.globalData.fontSize || 'normal'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 同步全局字体大小状态
    const app = getApp()
    this.setData({
      selectedFontSize: app.globalData.fontSize || 'normal'
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 添加消息
  addMessage(message) {
    const messages = [...this.data.messages, message]
    this.setData({ messages })
    this.scrollToBottom()
  },

  // 滚动到底部
  scrollToBottom() {
    wx.createSelectorQuery()
      .select('.message-list')
      .boundingClientRect((rect) => {
        this.setData({
          scrollTop: rect.height
        })
      })
      .exec()
  },

  // 输入框内容变化
  onInput(e) {
    this.setData({
      inputValue: e.detail.value
    })
  },

  // 发送消息
  sendMessage() {
    const { inputValue } = this.data
    if (!inputValue.trim()) return

    // 添加用户消息
    this.addMessage({
      type: 'user',
      content: inputValue
    })

    this.setData({
      inputValue: '',
      loading: true
    })

    // 发送到后端
    wx.request({
      url: 'YOUR_API_BASE_URL/api/ai/chat',
      method: 'POST',
      header: {
        'Authorization': `Bearer ${wx.getStorageSync('token')}`
      },
      data: {
        message: inputValue
      },
      success: (res) => {
        if (res.data.success) {
          // 添加AI回复
          this.addMessage({
            type: 'ai',
            content: res.data.reply
          })
        } else {
          wx.showToast({
            title: '获取回复失败',
            icon: 'none'
          })
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络错误',
          icon: 'none'
        })
      },
      complete: () => {
        this.setData({ loading: false })
      }
    })
  },

  // 清空聊天记录
  clearChat() {
    wx.showModal({
      title: '提示',
      content: '确定要清空聊天记录吗？',
      success: (res) => {
        if (res.confirm) {
          this.setData({
            messages: [{
              type: 'ai',
              content: '您好！我是您的AI健康助手，有什么可以帮您的吗？'
            }]
          })
        }
      }
    })
  }
})